home *** CD-ROM | disk | FTP | other *** search
/ American History: Interactive Maps & User's Guide / American History: Interactive Maps & User's Guide.iso / pc / ImapTest.dxr / 00003_StudentDataTracker Object.ls < prev    next >
Encoding:
Text File  |  2000-01-25  |  8.6 KB  |  286 lines

  1. property answerList, responseList, questionTypeList, myAnswer, myAnswer2, myAnswerList, QuestionNum, firstChoiceSprite, doneResponseSprite, barResponseSprite, currentAnswer, currentType, currentScore, numberTries
  2.  
  3. on new me
  4.   set myAnswer to 0
  5.   set myAnswer2 to 0
  6.   set currentQuestion to 1
  7.   set answerList to []
  8.   set myAnswerList to []
  9.   set currentScore to 0
  10.   set questionTypeList to []
  11.   set QuestionNum to 1
  12.   return me
  13. end
  14.  
  15. on initImapValues me, passAnswerList, passQuestionTypeList, passQuestionSpriteStart, passDoneSprite, passBarResponseSprite
  16.   repeat with counter = 1 to count(passAnswerList)
  17.     setAt(answerList, counter, getAt(passAnswerList, counter))
  18.   end repeat
  19.   repeat with counter = 1 to count(passQuestionTypeList)
  20.     setAt(questionTypeList, counter, getAt(passQuestionTypeList, counter))
  21.   end repeat
  22.   set myAnswerList to [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
  23.   set firstChoiceSprite to passQuestionSpriteStart
  24.   set doneResponseSprite to passDoneSprite
  25.   set barResponseSprite to passBarResponseSprite
  26.   set currentAnswer to getAt(answerList, 1)
  27.   set currentType to getAt(questionTypeList, 1)
  28.   puppetSprite(doneResponseSprite, 1)
  29.   puppetSprite(barResponseSprite, 1)
  30. end
  31.  
  32. on initQuestionValues me
  33.   repeat with i = firstChoiceSprite + 1 to firstChoiceSprite + currentType
  34.     swapCast(i, "normal button")
  35.     puppetSprite(i, 0)
  36.   end repeat
  37.   set QuestionNum to QuestionNum + 1
  38.   set currentAnswer to getAt(answerList, QuestionNum)
  39.   set currentType to getAt(questionTypeList, QuestionNum)
  40.   set myAnswer to 0
  41.   set myAnswer2 to 0
  42.   set numberTries to 0
  43. end
  44.  
  45. on turnOffQuestioning
  46.   set QuestionNum to QuestionNum + 1
  47.   puppetSprite(barResponseSprite, 0)
  48.   puppetSprite(barResponseSprite - 1, 0)
  49.   repeat with lIntCounter = firstChoiceSprite + 1 to firstChoiceSprite + 5
  50.     puppetSprite(lIntCounter, 0)
  51.   end repeat
  52. end
  53.  
  54. on DisplayScore me
  55.   set DisplayScore to currentScore + getAt(myAnswerList, QuestionNum)
  56.   set lBoolDone to hCheckStatus()
  57.   if lBoolDone = 1 then
  58.     set lIntTotal to QuestionNum * 10
  59.   else
  60.     set lIntTotal to (QuestionNum - 1) * 10
  61.   end if
  62.   set lStrScoreDisplay to DisplayScore & "/" & lIntTotal
  63.   put lStrScoreDisplay into field "currentScoreField"
  64. end
  65.  
  66. on computeScore me
  67.   set currentScore to currentScore + getAt(myAnswerList, QuestionNum - 1)
  68. end
  69.  
  70. on getCurrentScore me
  71.   return currentScore
  72. end
  73.  
  74. on getAnswerList me
  75.   return myAnswerList
  76. end
  77.  
  78. on getMyFirstAnswer me
  79.   return myAnswer
  80. end
  81.  
  82. on getMySecondAnswer me
  83.   return myAnswer2
  84. end
  85.  
  86. on getCurrentType me
  87.   return currentType
  88. end
  89.  
  90. on setResponse me, myResponse
  91.   case currentType of
  92.     5:
  93.       if myAnswer <> 0 then
  94.         set binaryCase to "X"
  95.       else
  96.         set binaryCase to "O"
  97.       end if
  98.       if myAnswer2 <> 0 then
  99.         set binaryCase to binaryCase & "X"
  100.       else
  101.         set binaryCase to binaryCase & "O"
  102.       end if
  103.       case binaryCase of
  104.         "OO":
  105.           set myAnswer to myResponse
  106.           swapCast(firstChoiceSprite + myAnswer, "yellow button")
  107.         "XO":
  108.           if myResponse = myAnswer then
  109.             set myAnswer to 0
  110.             swapCast(firstChoiceSprite + myAnswer, "normal button")
  111.           else
  112.             set myAnswer2 to myResponse
  113.             swapCast(firstChoiceSprite + myAnswer, "yellow button")
  114.           end if
  115.         "OX":
  116.           if myResponse = myAnswer2 then
  117.             set myAnswer2 to 0
  118.             swapCast(firstChoiceSprite + myAnswer2, "normal button")
  119.           else
  120.             set myAnswer to myResponse
  121.             swapCast(firstChoiceSprite + myAnswer2, "yellow button")
  122.           end if
  123.         "XX":
  124.           if myAnswer = myResponse then
  125.             set myAnswer to 0
  126.             swapCast(firstChoiceSprite + myAnswer, "normal button")
  127.           else
  128.             if myAnswer2 = myResponse then
  129.               set myAnswer2 to 0
  130.               swapCast(firstChoiceSprite + myAnswer2, "normal button")
  131.             end if
  132.           end if
  133.       end case
  134.     3, 4:
  135.       if myAnswer = 0 then
  136.         set myAnswer to myResponse
  137.         swapCast(firstChoiceSprite + myAnswer, "yellow button")
  138.       else
  139.         if myAnswer = myResponse then
  140.           set myAnswer to 0
  141.           swapCast(firstChoiceSprite + myAnswer, "normal button")
  142.         end if
  143.       end if
  144.   end case
  145.   put "First answer:  " & myAnswer
  146.   put "Second answer:  " & myAnswer2
  147. end
  148.  
  149. on getFirstChoiceSpriteNumber me
  150.   return firstChoiceSprite
  151. end
  152.  
  153. on getDoneSpriteNumber me
  154.   return doneResponseSprite
  155. end
  156.  
  157. on getBarSpriteNumber me
  158.   return barResponseSprite
  159. end
  160.  
  161. on getQuestionNumber me
  162.   return QuestionNum
  163. end
  164.  
  165. on checkAnswer me
  166.   set firstChoice to "Incorrect"
  167.   set secondChoice to "Incorrect"
  168.   set numberTries to numberTries + 1
  169.   case currentType of
  170.     5:
  171.       set secondAnswer to currentAnswer mod 10
  172.       set firstAnswer to (currentAnswer - firstAnswer) / 10
  173.       if myAnswer = firstAnswer then
  174.         set firstChoice to "Correct"
  175.       else
  176.         if myAnswer = secondAnswer then
  177.           set firstChoice to "Correct"
  178.         end if
  179.       end if
  180.       if myAnswer2 = firstAnswer then
  181.         set secondChoice to "Correct"
  182.       else
  183.         if myAnswer2 = secondAnswer then
  184.           set secondChoice to "Correct"
  185.         end if
  186.       end if
  187.       set choices to firstChoice & secondChoice
  188.       case choices of
  189.         "CorrectCorrect":
  190.           swapCast(firstChoiceSprite + myAnswer, "Green Button")
  191.           swapCast(firstChoiceSprite + myAnswer2, "Green Button")
  192.           swapCast(barResponseSprite, "Correct")
  193.           swapCast(doneResponseSprite, "RArrowOnly")
  194.           puppetSound("testRite")
  195.           if QuestionNum = 1 then
  196.             swapCast(33, "ArrowGoOn.E")
  197.           end if
  198.           if numberTries = 1 then
  199.             setAt(myAnswerList, QuestionNum, 10)
  200.           else
  201.             setAt(myAnswerList, QuestionNum, 5)
  202.           end if
  203.           set numberTries to 0
  204.           exit
  205.         "IncorrectCorrect":
  206.           swapCast(firstChoiceSprite + myAnswer, "Red Button")
  207.           swapCast(firstChoiceSprite + myAnswer2, "Green Button")
  208.           if numberTries = 2 then
  209.             swapCast(barResponseSprite, "Incorrect")
  210.           else
  211.             swapCast(barResponseSprite, "Part Correct")
  212.           end if
  213.         "CorrectIncorrect":
  214.           swapCast(firstChoiceSprite + myAnswer, "Green Button")
  215.           swapCast(firstChoiceSprite + myAnswer2, "Red Button")
  216.           if numberTries = 2 then
  217.             swapCast(barResponseSprite, "Incorrect")
  218.           else
  219.             swapCast(barResponseSprite, "Part Correct")
  220.           end if
  221.         "IncorrectIncorrect":
  222.           swapCast(firstChoiceSprite + myAnswer, "Red Button")
  223.           swapCast(firstChoiceSprite + myAnswer2, "Red Button")
  224.           swapCast(barResponseSprite, "Incorrect")
  225.       end case
  226.       if numberTries = 1 then
  227.         swapCast(doneResponseSprite, "TryAgain")
  228.         if QuestionNum = 1 then
  229.           swapCast(33, "TryAgainMessage.E")
  230.         end if
  231.       else
  232.         setAt(myAnswerList, QuestionNum, 0)
  233.         swapCast(firstChoiceSprite + firstAnswer, "Green Button")
  234.         swapCast(firstChoiceSprite + secondAnswer, "Green Button")
  235.         swapCast(doneResponseSprite, "RArrowOnly")
  236.         set numberTries to 0
  237.         if QuestionNum = 1 then
  238.           swapCast(33, "ArrowGoOn.E")
  239.         end if
  240.       end if
  241.       set myAnswer to 0
  242.       set myAnswer2 to 0
  243.     4, 3:
  244.       if myAnswer = currentAnswer then
  245.         swapCast(firstChoiceSprite + myAnswer, "Green Button")
  246.         puppetSound("testRite")
  247.         swapCast(barResponseSprite, "Correct")
  248.         swapCast(doneResponseSprite, "RArrowOnly")
  249.         if QuestionNum = 1 then
  250.           swapCast(33, "ArrowGoOn.E")
  251.         end if
  252.         if numberTries = 1 then
  253.           setAt(myAnswerList, QuestionNum, 10)
  254.         else
  255.           setAt(myAnswerList, QuestionNum, 5)
  256.         end if
  257.         set numberTries to 0
  258.         exit
  259.       else
  260.         if numberTries = 1 then
  261.           swapCast(doneResponseSprite, "TryAgain")
  262.           swapCast(firstChoiceSprite + myAnswer, "Red Button")
  263.           swapCast(barResponseSprite, "Incorrect")
  264.           if QuestionNum = 1 then
  265.             swapCast(33, "TryAgainMessage.E")
  266.           end if
  267.         else
  268.           if numberTries = 2 then
  269.             setAt(myAnswerList, QuestionNum, 0)
  270.             swapCast(firstChoiceSprite + myAnswer, "Red Button")
  271.             swapCast(firstChoiceSprite + currentAnswer, "Green Button")
  272.             swapCast(barResponseSprite, "Incorrect")
  273.             swapCast(doneResponseSprite, "RArrowOnly")
  274.             if QuestionNum = 1 then
  275.               swapCast(33, "ArrowGoOn.E")
  276.             end if
  277.             set numberTries to 0
  278.           end if
  279.         end if
  280.       end if
  281.       set myAnswer to 0
  282.       set myAnswer2 to 0
  283.   end case
  284.   updateStage()
  285. end
  286.